#ifndef EXPORTER_H
#define EXPORTER_H

#include "StomperLib/Export/ExportItem.h"
#include <functional>
#include <json/json.h>
#include <map>
#include <string>
#include <vector>
namespace StomperLib
{
namespace Export
{
typedef std::vector<StomperLib::Export::ExportItem*> ExportItemList;
typedef std::map<std::string, StomperLib::Export::ExportItem*> ExportItemMap;

class Exporter
{
 public:

  Exporter( );
  virtual ~Exporter( );

 public:

  int Export( StompedReality::Utility::FileSystem* FileSystem, Json::Value& rootNode, ExportItemList* itemList,
              std::function<bool(StomperLib::Export::ExportItem*)> itemFilter );
  int Export( StompedReality::Utility::FileSystem* FileSystem, Json::Value& rootNode, ExportItemMap* itemList,
              std::function<bool(StomperLib::Export::ExportItem*)> itemFilter );
};

}
}
#endif // ifndef EXPORTER_H